package com.medical.data.service;

import com.medical.data.domain.ProjectData;
import com.medical.data.domain.UserPermission;
import com.baomidou.mybatisplus.extension.service.IService;
import com.medical.data.vo.GetJoinUserVo;
import com.medical.data.vo.UserPermissionsVo;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author wz
 * @since 2024-05-19
 */
public interface UserPermissionService extends IService<UserPermission> {

    String getOwnUserIdByProjectId(String projectId);

    void joinProject(String projectId);

    Map<String, Object> getJoinUser(GetJoinUserVo getJoinUserVo);

    void createOwnUser(String ownId, String projectId);

    void agreeUser(String projectId, String userId);

    void removeUser(String projectId, String userId);

    void assignPermissions(UserPermissionsVo userPermissionsVo);

    Map<String, Object> getJoinedProjectUser(GetJoinUserVo getJoinUserVo);

    void getFormPermission(String projectId);

    void getDataPermission(String projectId);

    void getFollowUpPermission(String projectId);

    void getPatientPermission(String projectId);

    boolean checkRealUser(String id,String projectId);

    void refuseUser(String projectId, String userId);

    Map<String, Boolean> getUserPermissions(String projectId, String userId);

    List<String> getProjectByUserId(String id);

    void deleteUserByProjectId(String projectId);
}
